home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8504.arc / SUPEREN.ASM < prev   
Assembly Source File  |  1986-09-14  |  2KB  |  70 lines

  1.     PAGE 
  2.     PAGE    72,120 
  3. TITLE    SUPEREN   Change name of file, sub-dir or vol ID.
  4.  
  5.  
  6. COMMENT "    SUPEREN   [d:]name1    name2 
  7.     Renames files or subdirectories from name 1 to name2. 
  8.     Name1 & name2 may have extensions and wild characters.
  9.     Action of the program is as described in the DOS manual
  10.     for INT 21, function 17. 
  11. COM    SEGMENT 
  12.     ASSUME CS:COM, DS:COM, ES:COM, SS:COM 
  13.  
  14.     ORG    5CH    ;FCB FORMED FROM NAME1 
  15. FCB1    LABEL    BYTE 
  16. DRIVE1    DB    ? 
  17. NAME1    DB    11 DUP(?) 
  18.  
  19.     ORG    6CH    ;FCB FORMED FROM NAME2 
  20. FCB2    LABEL    BYTE 
  21. DRIVE2    DB    ? 
  22. NAME2    DB    11 DUP(?) 
  23.  
  24.     ORG    100H 
  25. SUPEREN    PROC 
  26.     MOV    DX,OFFSET INVDR$    ;POINT TO ERROR MESSAGE 
  27.     TEST    AL,AL        ;TEST FOR VALID DRIVE1 ID 
  28.     JNZ    ERROR 
  29.     MOV    DX,OFFSET INVPAR$ 
  30.     CMP    NAME1,' '        ;CHECK IF NAME1 IS THERE 
  31.     JE    ERROR 
  32.     CMP    NAME2,' '        ;CHECK FOR NAME 2 
  33.     JE    ERROR 
  34.  
  35.     MOV    SI,OFFSET FCB1        ;POINT TO NAME1 FCB 
  36.     MOV    DI,OFFSET OLDN        ;POINT TO OLD NAME FIELD 
  37.     MOV    CX,12        ;MOVE 12 BYTES 
  38.     REP    MOVSB        ;MOVE NAME1 TO EXTENDED FCB 
  39.     MOV    SI,OFFSET NAME2    ;POINT TO NAME2, NOT DRIVE 
  40.     MOV    DI,OFFSET OLDN+11H    ;POINT TO NEW NAME FIELD 
  41.     MOV    CX,11        ;NAME EX DRIVE = 11 BYTES 
  42.     REP    MOVSB        ;MOVE NAME2 TO EXTENDED FCB 
  43.  
  44.      MOV    DX,OFFSET XFCB        ;POINT DX TO EXTENDED FCB 
  45.     MOV    AH,17H        ;FUNCTION 17 = RENAME 
  46.     INT    21H 
  47.  
  48.     TEST    AL,AL        ;TEST FOR ERRORS 
  49.     JZ    EXIT        ;NO ERRORS IF AL = 0 
  50.     MOV    DX,OFFSET INVNAM$    ;ELSE POINT TO ERROR MSG 
  51. ERROR:    MOV    AH,9        ;DISPLAY ERROR MESSAGE 
  52.     INT    21H 
  53. EXIT:    INT    20H        ;RETURN TO DOS 
  54. SUPEREN    ENDP 
  55.  
  56. INVDR$    DB    0DH,0AH,'Invalid drive id$',0DH,0AH,'$' 
  57. INVPAR$    DB    0DH,0AH,'2 params needed: [d:]oldname, newname'
  58.  
  59.     DB    0DH,0AH,'$' 
  60. INVNAM$    DB    0DH,0AH,'Name not found or already exists' 
  61.     DB    0DH,0AH,'$' 
  62.  
  63. XFCB    DB    0FFH    ;EXTENDED FCB ID BYTE 
  64.     DB    5 DUP(0) 
  65. ATTR    DB    18H    ;ATTR FOR SUB-DIRS & VOL LABELS 
  66. OLDN    DB    37 DUP(0)    ;OLD & NEW NAMES GO HERE 
  67.  
  68. COM    ENDS 
  69.     END    SUPEREN